Add live data tools, AWS deploy stacks, agent fixes, and demo docs

Source fixes (production-relevant):
- agent: _add_default_tools(None) no longer crashes (chat_query_agent_router.py)
- agent: empty EUGENE_AGENT_ALLOWLIST now correctly means "allow all"
  (router/auth/conf.py — was producing {""} and blocking everyone)
- agent: false-positive duplicate-call breaker — when streamed tool_input is
  empty, N legitimately different calls to the same tool no longer fingerprint
  identically and trip the loop guard (eugene_data_agent.py)
- agent: _flatten_tool_output now also tries ast.literal_eval so native Strands
  tool dicts (Python-repr, single quotes) parse correctly — fixes empty
  reasoning graphs for live-tool results
- agent: system prompt updated with org two-step lookup rule, facts-vs-
  relationships guidance, and live-tool routing on "latest/recent/current"
- core api: eugene_jwts.py supports EUGENE_DEV_UPN/EUGENE_DEV_USER env overrides
- ui: /api/health is tolerant of 404 from /health/ready (cascading probe)
- ui: /api/auth/token can return EUGENE_STATIC_TOKEN when set

New real-time tools:
- search_clinical_trials (ClinicalTrials.gov v2, live, no key)
- search_europepmc (Europe PMC, live, supports patents_only)

Deployment:
- docker-compose.{aws,build,prod}.yml — pull/build/AWS variants
- bin/redeploy_ui.sh, bin/dump_aws_neo4j_to_cypher.py
- infrastructure/environments/fresh-deploy/ — full ECS+ALB+EC2 Neo4j stack
- infrastructure/environments/ui-only-ec2/ — UI-only EC2 against prod ALB
- .github/workflows/build-images.yml — push 5 service images to ghcr.io

Documentation:
- docs/EUGENE_REQUEST_FLOW_DEVELOPER_GUIDE.md — end-to-end request flow for
  the 5 demo questions
- docs/eugene_presentation_talking_points.{md,pdf,py} — 10-point presentation
  handout

Hardening:
- .gitignore: actually exclude *.tfvars (was commented out), add tfplan/dumps

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
